In a computing system where there are client and server computers, a user inputs data to a client computer which hosts client software. The client computer processes the input data and generates an output data in a format which is compatible with the server computer. The user then performs a transfer operation, such as an upload or download, from the client computer to the server computer for further processing.
It is common for software and applications to have multiple versions, each subsequent version having enhancements and/or additional features. Usually, there is only one version in each client and server computer. When the client computer generates output data for the server computer, it is done based on features in the client computer that are supported in the server computer. The output data generated by the client computer is only intended for a server computer that has a version which corresponds to the client. If the server computer has a different version, the client computer can proceed with the download operation which may not be acceptable or not processed correctly by the server computer. This causes a lack of data integrity.
In the prior art as illustrated in FIG. 1, there is only one to one mapping, which means that the client computer can only generate an output for a server computer which has a corresponding version. For a computing system which has different versions of software or applications, there is a need to setup multiple computers as clients or servers so as to ensure corresponding versions of software and applications are available for use to maintain data integrity when data is transferred during upload or download for processing. The data transfer has high failure rate when the software/application versions of the client computer and server computer are not compatible.
In the prior art, a method of ensuring a successful data transfer is to check that the input data for the client computer is compatible with the target server computer. This is done by verifying each of the input data feature with features which are supported by the target server computer. This is inefficient for computer resources (such as memory, processors and so forth), and human resources (due to time spent on the comparison process).
Alternatively, client and corresponding server computer must be upgraded simultaneously for every new software or application version. However, this causes unnecessary downtime of computing resources. For example, a new version for minor enhancement in the client computer is not necessary to be installed in the corresponding server which is not affected by the changes on the client computer. In another example, there are different upgrade schedules for the client and the corresponding server in the case where the client requires further preparation work after upgrade while the corresponding server has to be in continuous operation.
In addition, output data is generated by an Output Generation Module which can only generate an output data which is compatible with one version. Therefore, there is a corresponding Output Generation Module for each revision. Furthermore, each Output Generation module can only generate one type of output data format. When the output data format is different for another server, a different Output Generation Module is required.
There is a need for a more optimal way to perform output data generation for a computing system.